

#ifndef SYMBOL_NAME
#define  SYMBOL(a,b)				a
#else
#define  SYMBOL(a,b)				b
#endif

SYMBOL(translation_unit,"translation_unit"),
SYMBOL(external_declaration, "external_declaration"),
SYMBOL(declaration_list,"declaration_list"),
SYMBOL(function_definition,"function_definition"),
SYMBOL(declaration,"declaration"),

//expressions,
SYMBOL(additive_expression,"additive_expression"),
SYMBOL(AND_expression,"AND_expression"),
SYMBOL(argument_expression_list,"argument_expression_list"),
SYMBOL(assignment_expression,"assignment_expression"),
SYMBOL(assignment_operator,"assignment_operator"),
SYMBOL(cast_expression,"cast_expression"),
SYMBOL(conditional_expression,"conditional_expression"),
SYMBOL(constant_expression,"constant_expression"),
SYMBOL(equality_expression,"equality_expression"),
SYMBOL(exclusive_OR_expression,"exclusive_OR_expression"),
SYMBOL(expression,"expression"),
SYMBOL(inclusive_OR_expression,"inclusive_OR_expression"),
SYMBOL(logical_AND_expression,"logical_AND_expression"),
SYMBOL(logical_OR_expression,"logical_OR_expression"),
SYMBOL(multiplicative_expression,"multiplicative_expression"),
SYMBOL(postfix_expression,"postfix_expression"),
SYMBOL(primary_expression,"primary_expression"),
SYMBOL(relational_expression,"relational_expression"),
SYMBOL(shift_expression,"shift_expression"),
SYMBOL(unary_expression,"unary_expression"),
SYMBOL(unary_operator,"unary_operator"),

//declarations
SYMBOL(declaration_specifiers,"declaration_specifiers"),
SYMBOL(init_declarator_list,"init_declarator_list"),
SYMBOL(init_declarator,"init_declarator"),
SYMBOL(storage_class_specifier,"storage_class_specifier"),
SYMBOL(type_specifier,"type_specifier"),
SYMBOL(struct_or_union_specifier,"struct_or_union_specifier"),
SYMBOL(struct_or_union,"struct_or_union"),
SYMBOL(struct_declaration_list,"struct_declaration_list"),
SYMBOL(struct_declaration,"struct_declaration"),
SYMBOL(specifier_qualifier_list,"specifier_qualifier_list"),
SYMBOL(struct_declarator_list,"struct_declarator_list"),
SYMBOL(struct_declarator,"struct_declarator"),
SYMBOL(enum_specifier,"enum_specifier"),
SYMBOL(enumerator_list,"enumerator_list"),
SYMBOL(enumerator,"enumerator"),
SYMBOL(type_qualifier,"type_qualifier"),
SYMBOL(function_specifier,"function_specifier"),
SYMBOL(declarator,"declarator"),
SYMBOL(direct_declarator,"direct_declarator"),
SYMBOL(pointer,"pointer"),
SYMBOL(type_qualifier_list,"type_qualifier_list"),
SYMBOL(parameter_type_list,"parameter_type_list"),
SYMBOL(parameter_list,"parameter_list"),
SYMBOL(parameter_declaration,"parameter_declaration"),
SYMBOL(identifier_list,"identifier_list"),
SYMBOL(type_name,"type_name"),
SYMBOL(abstract_declarator,"abstract_declarator"),
SYMBOL(direct_abstract_declarator,"direct_abstract_declarator"),
SYMBOL(typedef_name,"typedef_name"),
SYMBOL(initializer,"initializer"),
SYMBOL(initializer_list,"initializer_list"),
SYMBOL(designation,"designation"),
SYMBOL(designator_list,"designator_list"),
SYMBOL(designator,"designator"),

//statements
SYMBOL(statement,"statement"),
SYMBOL(labeled_statement,"labeled_statement"),
SYMBOL(compound_statement,"compound_statement"),
SYMBOL(block_item_list,"block_item_list"),
SYMBOL(block_item,"block_item"),
SYMBOL(expression_statement,"expression_statement"),
SYMBOL(selection_statement,"selection_statement"),
SYMBOL(iteration_statement,"iteration_statement"),
SYMBOL(jump_statement,"jump_statement"),

#ifdef SYMBOL_NAME
#undef SYMBOL_NAME
#endif
#undef SYMBOL

